package com.aliyun.heiyu.common.util;

import org.dom4j.Document;
import org.dom4j.io.SAXReader;

import java.io.File;

public class SAXReaderUtil {

    public static Document getDocument( File file){
        try {
            SAXReader reader = new SAXReader();
            reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

            reader.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true);

            // 是否包含外部生成的实体。当正在解析文档时为只读属性，未解析文档的状态下为读写。
            reader.setFeature("http://xml.org/sax/features/external-general-entities", false);

            // 是否包含外部的参数，包括外部DTD子集。当正在解析文档时为只读属性，未解析文档的状态下为读写。
            reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);

            reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

            Document document = reader.read(file);
            return document;
        } catch (Exception e){
            return null;
        }
    }
}
